// // 数字枚举
// const test = 1
// const getIndex = (): number => {
//   return 2
// }
// enum Status {
//   Uploading = 3,
//   Success = test,
//   Failed = getIndex(),
// }

// console.log(Status.Uploading)
// console.log(Status['Failed'])
// console.log(Status[3])

// console.log(Status)

// // 字符串枚举
// enum Message {
//   Error = 'Sorry,error',
//   Success = 'Hoho success',
//   Failed = Error,
// }
// console.log(Message)
// console.log(Message.Error)
// console.log(Message.Failed)

// 异构枚举
// enum Result {
//   Faild = 0,
//   Success = 'success',
// }

// console.log(Result)

// 枚举作为类型来使用

// enum Animals {
//   Dog = 1,
//   Cat = 2,
// }

// interface Dog {
//   type: Animals.Dog
// }

// const dog: Dog = {
//   type: Animals.Dog,
// }

// console.log(dog)

// 联合枚举类型
// enum Status {
//   Off,
//   On,
// }

// interface Light {
//   Status: Status
// }

// const light: Light = {
//   Status: Status.Off,
// }

// 编译成可读对象
const enum Status {
  Dog = 1,
}
